In data processing systems a processor may be coupled to a main memory via a cache memory. The cache memory is for temporarily storing duplicates of data for respective addresses in the main address range so that future requests for data at one of the respective addresses are served faster. In the main memory range various memories may be present, for example a non-volatile program memory, a volatile data memory, registers. A buffer memory may be located in the main memory address range, the buffer directly receiving transient data to be processed from an external source.
For example, vision applications may use fine pixel resolution cameras, which receive a frame of image data every 33 ms (30 frames per second). Each frame from a high resolution camera may, for example, be 6 Mbytes of data. As a processor processes this data via a cache memory, the data may be loaded into such cache memory. Once image processing is complete on that frame of data, the processor may start processing of a next frame of data which was written into the buffer. If the cache memory is not updated, old data may accidentally be used. Hence, a drawback of such a device is that the cache must be invalidated to ensure the processor works on the new frame data and not the stale frame data in the cache.